iconhelper: refactor some code into a single function
authorCosimo Cecchi <cosimoc@gnome.org>
Sun, 4 Aug 2013 14:56:37 +0000 (16:56 +0200)
committerCosimo Cecchi <cosimoc@gnome.org>
Tue, 20 Aug 2013 00:50:40 +0000 (02:50 +0200)
https://bugzilla.gnome.org/show_bug.cgi?id=705443

gtk/gtkiconhelper.c

index d753198277e8545c9ef953322ede2610d04c7c69..2200e3c50364dcce9192a64d028f5b05c88cc185 100644 (file)
@@ -178,6 +178,36 @@ ensure_icon_size (GtkIconHelper *self,
   *height_out = height;
 }
 
+static GdkPixbuf *
+ensure_stated_pixbuf_from_pixbuf (GtkIconHelper   *self,
+                                 GtkStyleContext *context,
+                                 GdkPixbuf       *pixbuf)
+{
+  GdkPixbuf *rendered;
+  GtkIconSource *source;
+
+  G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
+
+  /* FIXME: use gtk_icon_info_load_icon? */
+
+  source = gtk_icon_source_new ();
+  gtk_icon_source_set_pixbuf (source, pixbuf);
+  /* The size here is arbitrary; since size isn't
+   * wildcarded in the source, it isn't supposed to be
+   * scaled by the engine function
+   */
+  gtk_icon_source_set_size (source,
+                           GTK_ICON_SIZE_SMALL_TOOLBAR);
+  gtk_icon_source_set_size_wildcarded (source, FALSE);
+
+  rendered = gtk_render_icon_pixbuf (context, source, (GtkIconSize) -1);
+  gtk_icon_source_free (source);
+
+  G_GNUC_END_IGNORE_DEPRECATIONS;
+
+  return rendered;
+}
+
 static GdkPixbuf *
 ensure_stated_icon_from_info (GtkIconHelper *self,
                               GtkStyleContext *context,
@@ -210,28 +240,9 @@ ensure_stated_icon_from_info (GtkIconHelper *self,
     }
   else if (!symbolic)
     {
-      GtkIconSource *source;
       GdkPixbuf *rendered;
 
-      G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
-
-      /* FIXME: use gtk_icon_info_load_icon? */
-
-      source = gtk_icon_source_new ();
-      gtk_icon_source_set_pixbuf (source, destination);
-      /* The size here is arbitrary; since size isn't
-       * wildcarded in the source, it isn't supposed to be
-       * scaled by the engine function
-       */
-      gtk_icon_source_set_size (source,
-                               GTK_ICON_SIZE_SMALL_TOOLBAR);
-      gtk_icon_source_set_size_wildcarded (source, FALSE);
-
-      rendered = gtk_render_icon_pixbuf (context, source, (GtkIconSize) -1);
-      gtk_icon_source_free (source);
-
-      G_GNUC_END_IGNORE_DEPRECATIONS;
-
+      rendered = ensure_stated_pixbuf_from_pixbuf (self, context, destination);
       g_object_unref (destination);
       destination = rendered;
     }
@@ -653,26 +664,9 @@ ensure_stated_surface_from_info (GtkIconHelper *self,
     }
   else if (!symbolic)
     {
-      GtkIconSource *source;
       GdkPixbuf *rendered;
 
-      G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
-
-      source = gtk_icon_source_new ();
-      gtk_icon_source_set_pixbuf (source, destination);
-      /* The size here is arbitrary; since size isn't
-       * wildcarded in the source, it isn't supposed to be
-       * scaled by the engine function
-       */
-      gtk_icon_source_set_size (source,
-                               GTK_ICON_SIZE_SMALL_TOOLBAR);
-      gtk_icon_source_set_size_wildcarded (source, FALSE);
-
-      rendered = gtk_render_icon_pixbuf (context, source, (GtkIconSize) -1);
-      gtk_icon_source_free (source);
-
-      G_GNUC_END_IGNORE_DEPRECATIONS;
-
+      rendered = ensure_stated_pixbuf_from_pixbuf (self, context, destination);
       g_object_unref (destination);
       destination = rendered;
     }